漫谈STL

数据描述、定义及对数据的操作(函数),是数据结构与算法(一些通用的函数模板(库))的概念,也是类类型封闭的概念。

STL实现一些常用的数据结构和算法,并尽量实现这些数据结构和算法的通用性和泛化。

容器的通用:通过类模板来实现数据类型的类型的泛化;

算法的通用:独立于具体的数据类型、容器类型,通过迭代器+函数对象来实现;如一个排序算法,可以是不同的容器,也可以实现降序或升序,前者通过迭代器来实现,后者通过函数对象来实现(其中有些功能可定制,不是写死在算法内部,也是通过传入函数对象来实现)。函数对象其实也可以是函数指针或lambda表达式。

容器(数据结构、类模板、类型泛化、可变长),其可变长(容器元素数量的自增长)通过分配器来实现,将数据存储在堆内存上。

迭代器:访问方式的不同(读、写、顺序、随机访问),而有不同的迭代器。内部类实现了相同的名称。

算法库(函数模板、大多数算法使用一对指定元素范围的容器的迭代器作为实参来访问容器元素)

STL为容器提供一致的外部接口(成员函数或方法),这些接口包括少量的操作(如构造、增、删等)和大量的额外操作(算法,如排序、查找等),由于操作接口的一致性,使得STL更容易使用。

STL算法:

1 函数模板,独立于具体的数据类型、容器类型;

2 通过迭代器获得输入数据;

3 通过函数对象对数据进行处理;

4 通过迭代器将结果输出;

本页共14段,686个字符,1802 Byte(字节)